package uk.co.traintrackapp.traintrack.fragment;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import java.util.ArrayList;
import uk.co.traintrackapp.traintrack.R;
import uk.co.traintrackapp.traintrack.TrainTrack;
import uk.co.traintrackapp.traintrack.adapter.StationRowAdapter;
import uk.co.traintrackapp.traintrack.model.Station;
public class StationsSearchFragment extends Fragment {
public static Fragment newInstance() {
return new StationsSearchFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_stations_search, container, false);
TrainTrack app = (TrainTrack) getActivity().getApplication();
ArrayList<Station> stations = app.getStations();
final RecyclerView list = (RecyclerView) v.findViewById(R.id.list);
list.setLayoutManager(new LinearLayoutManager(getActivity()));
list.setItemAnimator(new DefaultItemAnimator());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
String distanceUnit = prefs.getString("pref_distance_units", "km");
final StationRowAdapter adapter = new StationRowAdapter(stations, distanceUnit);
list.setAdapter(adapter);
final EditText search = (EditText) v.findViewById(R.id.search);
search.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
search.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
public void onTextChanged(CharSequence search, int arg1, int arg2,
int arg3) {
adapter.getFilter().filter(search);
list.smoothScrollToPosition(0);
}
});
return v;
}
}